/**
 * 通过POST请求获取表数据
 * @param {string} table - 表名
 * @param {Object} [options={}] - 查询选项
 * @returns {Promise<Array>} - 表数据
 */
async function fetchDataWithPost(table, options = {}) {
    const response = await fetch(`http://192.168.182.136:8080/${table}/query`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(options)
    });
    const data = await response.json();
    return data;
}

/**
 * 添加数据
 * @param {string} table - 表名
 * @param {Object} data - 要添加的数据
 * @returns {Promise<boolean>} - 操作是否成功
 */
async function addData(table, data) {
    const response = await fetch(`http://192.168.182.136:8080/${table}/add`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    });
    return response.ok;
}

// 其余函数保持不变
// /**
//  * 获取表数据
//  * @param {string} table - 表名
//  * @returns {Promise<Array>} - 表数据
//  */
// async function fetchData(table) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`);
//     const data = await response.json();
//     return data;
// }

// /**
//  * 添加数据
//  * @param {string} table - 表名
//  * @param {Object} data - 要添加的数据
//  * @returns {Promise<boolean>} - 操作是否成功
//  */
// async function addData(table, data) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`, {
//         method: 'POST',
//         headers: {
//             'Content-Type': 'application/json'
//         },
//         body: JSON.stringify(data)
//     });
//     return response.ok;
// }

/**
 * 更新数据
 * @param {string} table - 表名
 * @param {Object} data - 要更新的数据
 * @returns {Promise<boolean>} - 操作是否成功
 */
async function updateData(table, data) {
    const response = await fetch(`http://192.168.182.136:8080/${table}`, {
        method: 'PUT',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    });
    return response.ok;
}

/**
 * 删除数据
 * @param {string} table - 表名
 * @param {number} id - 要删除的数据ID
 * @returns {Promise<boolean>} - 操作是否成功
 */
async function deleteData(table, id) {
    const response = await fetch(`http://192.168.182.136:8080/${table}`, {
        method: 'DELETE',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({ id: id })
    });
    return response.ok;
}

/**
 * 创建表格
 * @param {string} table - 表名
 * @param {Array} data - 表数据
 * @returns {HTMLTableElement} - 生成的表格元素
 */
function createTable(table, data) {
    const tableElement = document.createElement('table');
    const header = tableElement.createTHead();
    const body = tableElement.createTBody();

    const headerRow = header.insertRow(0);
    Object.keys(data[0]).forEach(key => {
        const cell = headerRow.insertCell();
        cell.innerText = key;
    });

    data.forEach(rowData => {
        const row = body.insertRow();
        Object.values(rowData).forEach(value => {
            const cell = row.insertCell();
            cell.innerText = value;
        });
        const actionCell = row.insertCell();
        const deleteButton = document.createElement('button');
        deleteButton.innerText = '删除';
        deleteButton.onclick = () => deleteData(table, rowData['id']);
        actionCell.appendChild(deleteButton);
    });

    return tableElement;
}

/**
 * 加载表数据并生成表格
 * @param {string} table - 表名
 */
async function loadTable(table) {
    const data = await fetchData(table);
    const tableElement = createTable(table, data);
    document.getElementById('tableContainer').appendChild(tableElement);
}

/**
 * 根据选项获取数据
 * @param {string} table - 表名
 * @param {Object} options - 查询选项
 * @returns {Promise<Array>} - 获取的数据
 */
async function fetchDataWithOptions(table, options) {
    const url = new URL(`http://192.168.182.136:8080/${table}`);
    Object.keys(options).forEach(key => url.searchParams.append(key, options[key]));
    const response = await fetch(url);
    const data = await response.json();
    return data;
}


//---------------------

// async function fetchData(table) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`);
//     const data = await response.json();
//     return data;
// }

// async function addData(table, data) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`, {
//         method: 'POST',
//         headers: {
//             'Content-Type': 'application/json'
//         },
//         body: JSON.stringify(data)
//     });
//     return response.ok;
// }

// async function updateData(table, data) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`, {
//         method: 'PUT',
//         headers: {
//             'Content-Type': 'application/json'
//         },
//         body: JSON.stringify(data)
//     });
//     return response.ok;
// }

// async function deleteData(table, id) {
//     const response = await fetch(`http://192.168.182.136:8080/${table}`, {
//         method: 'DELETE',
//         headers: {
//             'Content-Type': 'application/json'
//         },
//         body: JSON.stringify({ id: id })
//     });
//     return response.ok;
// }

// function createTable(table, data) {
//     const tableElement = document.createElement('table');
//     const header = tableElement.createTHead();
//     const body = tableElement.createTBody();

//     const headerRow = header.insertRow(0);
//     Object.keys(data[0]).forEach(key => {
//         const cell = headerRow.insertCell();
//         cell.innerText = key;
//     });

//     data.forEach(rowData => {
//         const row = body.insertRow();
//         Object.values(rowData).forEach(value => {
//             const cell = row.insertCell();
//             cell.innerText = value;
//         });
//         const actionCell = row.insertCell();
//         const deleteButton = document.createElement('button');
//         deleteButton.innerText = '删除';
//         deleteButton.onclick = () => deleteData(table, rowData['id']);
//         actionCell.appendChild(deleteButton);
//     });

//     return tableElement;
// }

// async function loadTable(table) {
//     const data = await fetchData(table);
//     const tableElement = createTable(table, data);
//     document.getElementById('tableContainer').appendChild(tableElement);
// }
////////
